﻿//
// Created by x1377 on 2024/12/4.
//


//编写一个函数，该函数接受一个整型数组和数组的大小作为参数，使用指针遍历数组，将数组中的每个元素乘以 2，并在主函数中输出修改后的数组。
#include <stdio.h>

// 函数用于将数组元素乘以2
// 函数接收一个指向整型的指针（即指向整型数组首元素的指针）和数组的大小作为参数
void doubleArrayElements(int *arr, int size) {
    // 定义一个指针ptr，并让它指向传入的数组首元素，此时ptr和arr指向同一块内存区域（数组开始位置）
    int *ptr = arr;
    // 循环遍历数组，i从0开始，每次递增1，直到达到数组大小size为止
    for (int i = 0; i < size; i++) {
        // 通过解引用指针ptr，获取当前指针所指向的数组元素，并将其值乘以2，实现修改数组元素的目的
        *ptr = *ptr * 2;
        // 将指针ptr向后移动一个位置，使其指向下一个数组元素，便于下一次循环操作
        ptr++;
    }
}

int main() {
    // 定义并初始化一个整型数组arr，包含5个元素
    int arr[] = {1, 2, 3, 4, 5};
    // 计算数组arr的元素个数，通过总的字节数除以单个元素的字节数来得到
    int size = sizeof(arr) / sizeof(arr[0]);

    // 调用doubleArrayElements函数，传入数组arr和其大小size，对数组元素进行乘以2的操作
    doubleArrayElements(arr, size);

    // 输出提示信息，表明接下来输出的是修改后的数组内容
    printf("修改后的数组：");
    // 循环遍历修改后的数组，从第一个元素开始，依次输出每个元素，元素之间用空格隔开
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    // 输出换行符，使输出格式更美观
    printf("\n");

    return 0;
}